<?php

class fDiscover extends aFeature {
   
   public function __construct() {
      $this->_acl = new AccessControlList();
      $this->_acl->setGranted(1); $this->_acl->setGranted(2); 
      $this->_acl->setGranted(3); $this->_acl->setGranted(4); 
      $this->_acl->setGranted(5); $this->_acl->setGranted(6);
      $this->_acl->setGranted(7);
   }

   public static function getTocEntry() {
      return "Tous les services";
   }

   public static function getRealName() {
		return "Listing des services installés ";
	}
	
	public static function getSemantic() {
		$res  = "Balloon est basé sur une architecture modulable a loisir, ";
		$res .= "et est composé de multiples services. ";
		$res .= "Ce service permet de lister tous les services installé sur le serveur Balloon.";
		return $res;
	}

   
   protected function run() {
   	// Les Compteurs
   	$howManyServices = 0;
   	$services = "";
   	
   	// Lecture des services :
   	chdir('..');
   	$dir = opendir(".");
   	while (($file = readdir($dir)) !== false) {
   		// On ignore ce fichier, . et .., normal ;-)
   		if ($file == "." or $file == ".." or $file == "index.php")
   			continue;
   		// On cherche un service :
   		if (is_dir($file) and file_exists($file."/".ServiceIndexer::$serviceFile)) {
   			$howManyServices++;
   			$currentDir = getcwd();
            $newDir = $currentDir."/$file";
            chdir($newDir);
   			$indexer = new ServiceIndexer($file);
   			$services .= $indexer->showShort();
   			chdir("..");
   		}
   	}
	
   	$analyze = "<h1> Découverte des Services Balloon</h1>\n";
   	$analyze .= "<h2> Résultats de la recherche </h2>\n";
   	$analyze .= "<p> <ul> <li>Le système Balloon est actuellement composé de $howManyServices services. </li>";
   	$analyze .= "<li> Le listing ci-dessous contient tous les services effectivement utilisable. </li>";
   	$analyze .= "<li>Amusez vous bien !</li></ul></p>";
   	
   	return $analyze."\n".$services;
   }
   

}

?>